<template>
  <div class="import-container">
    <div class="app-container">
      <el-card>
        <h2 style="text-align: center">{{ title }}</h2>
        <el-alert
          :title="text"
          type="warning"
          show-icon
          :closable="false"
        />
        <UploadExcel :on-success="handleSuccess" :before-upload="beforeUpload" />
      </el-card>
    </div>
  </div>
</template>

<script>
import { reqImportEmployees } from '@/api/employees'
import Enum from '@/api/constant/employees'
export default {
  name: 'Import',
  data() {
    return {
    }
  },
  computed: {
    type() {
      return this.$route.query.type
    },
    title() {
      return this.type === 'user' ? '员工导入' : '考勤导入'
    },
    text() {
      return this.type === 'user' ? '每次导入仅可添加1000名员工，姓名、手机、入职时间、聘用形式为必填项' : '考勤'
    }
  },
  methods: {
    // 上传成功后的处理函数 results 表格的数据   header 是表格的标题
    async handleSuccess({ results, header }) {
      // 员工导入
      if (this.type === 'user') {
        // 做一个对照关系的对象
        const rules = {
          '入职日期': 'timeOfEntry',
          '姓名': 'username',
          '工号': 'workNumber',
          '手机号': 'mobile',
          '聘用形式': 'formOfEmployment',
          '转正日期': 'correctionTime',
          '部门': 'departmentName'
        }
        // 0 将results中的中文键 全部处理成英文
        const res = results.map(item => {
        // console.log(item)
          const obj = {}
          for (const k in item) {
          // console.log(k) // 中文键
          // console.log(item[k]) // 值
          // console.log(rules[k]) // 英文的键
            const enkey = rules[k]
            if (enkey === 'formOfEmployment') {
            // console.log(item[k])
            // 如果英文的键是formOfEmployment 需要提交的聘用形式的值是 1 || 2
              const o = Enum.hireType.find(subItem => subItem.value === item[k])
              o ? obj[enkey] = o.id : obj[enkey] = 0
            } else if (['timeOfEntry', 'correctionTime'].includes(enkey)) {
              obj[enkey] = this.formatExcelDate(item[k], '-')
            } else {
              obj[enkey] = item[k]
            }
          }
          return obj
        })
        console.log(res) // 数组包对象 键英文的数据
        // 1. 发送请求
        await reqImportEmployees(res)
        // // 2. 回到员工页面
        // this.$router.push('/employees')
        this.$router.back()
      // this.$router.go(-1)
      }
      // 考勤导入
      if (this.type === 'att') {
        console.log('考勤导入业务')
      }
    }
  }
}
</script>

<style>

</style>
